package cn.zwx.goods.svc.rpc.facade;

import cn.zwx.base.entity.ResponseEntity;
import cn.zwx.base.exception.BizWrapException;
import cn.zwx.base.utils.PageUtil;
import cn.zwx.goods.svc.rpc.dto.*;
import cn.zwx.goods.svc.rpc.vo.BrandInfoVO;
import cn.zwx.goods.svc.rpc.vo.BrandVO;
import cn.zwx.goods.svc.rpc.vo.InsertBrandVO;

import java.util.List;


/**
 * @author zhangwenxue
 */
public interface DubboBrandService {

    /**
     * 分页查询品牌列表
     * @param dto 请求参数
     * @return 返回参数
     * @throws BizWrapException 业务异常
     */
    ResponseEntity<PageUtil<BrandVO>> selectPageList(BrandPageListDTO dto) throws BizWrapException;


    /**
     * 根据类目Id查询品牌列表借口
     * @param dto 请求参数
     * @return 返回参数
     * @throws BizWrapException 业务异常
     */
    ResponseEntity<List<BrandVO>> selectListByCategoryId(BrandCategoryDTO dto) throws BizWrapException;


    /**
     * 根据品牌id品牌信息接口
     * @param dto 请求参数
     * @return 返回参数
     * @throws BizWrapException 业务异常
     */
    ResponseEntity<BrandInfoVO> selectByInfo(BrandInfoDTO dto)throws BizWrapException;


    /**
     * 新增品牌接口
     *
     * @param dto 请求参数
     * @return 返回参数
     * @throws BizWrapException 业务异常
     */
    ResponseEntity<InsertBrandVO> insertBrand(InsertBrandDTO dto)throws BizWrapException;

    /**
     * 修改品牌接口
     * @param dto 请求参数
     * @return 返回参数
     * @throws BizWrapException 业务异常
     */
    ResponseEntity<Void> modifyBrand(ModifyBrandDTO dto)throws BizWrapException;

    /**
     * 删除品牌接口
     * @param dto 请求参数
     * @return 返回参数
     * @throws BizWrapException 业务异常
     */
    ResponseEntity<Void> delBrand(DeleteBrandDTO dto)throws BizWrapException;
}
